import request from './request'

/**
 * 分页查询宠物信息（支持动态查询）
 * @param {Object} params
 * @param {number} params.pageNum - 页码（从1开始）
 * @param {number} params.pageSize - 每页大小
 * @param {number} params.categoryId - 分类ID（可选，精确查询，1=狗，2=猫，3=兔子，4=其他）
 * @param {string} params.category - 分类名称/关键词（可选，模糊查询，支持中英文）
 * @param {string} params.keyword - 搜索关键词（可选，宠物名称或品种）
 * @param {string} params.breed - 品种（可选，模糊查询）
 * @param {number} params.minPrice - 最低价格（可选）
 * @param {number} params.maxPrice - 最高价格（可选）
 * @param {number} params.minAge - 最小年龄（可选，月）
 * @param {number} params.maxAge - 最大年龄（可选，月）
 * @param {number} params.gender - 性别（可选，1=公，2=母）
 * @param {number} params.petStatus - 宠物状态（可选，1=待售，2=已售，3=已被领养，4=已预定）
 * @description 
 * 查询优先级：categoryId > category > keyword
 * - 精确查询：使用 categoryId（推荐）
 * - 模糊查询：使用 category（支持"狗"、"猫"、"dog"、"cat"等）
 * - 关键词搜索：使用 keyword（搜索宠物名称或品种）
 * @returns {Promise}
 */
export function getPetList(params) {
  return request({
    url: '/pet/list',
    method: 'get',
    params
  })
}

/**
 * 获取宠物详情
 * @param {number} id - 宠物ID
 * @returns {Promise}
 */
export function getPetDetail(id) {
  return request({
    url: `/pet/${id}`,
    method: 'get'
  })
}

/**
 * 创建宠物信息（管理员）
 * @param {Object} data - 宠物信息
 * @returns {Promise}
 */
export function createPet(data) {
  return request({
    url: '/pet/create',
    method: 'post',
    data
  })
}

/**
 * 更新宠物信息（管理员）
 * @param {Object} data - 宠物信息
 * @returns {Promise}
 */
export function updatePet(data) {
  return request({
    url: '/pet/update',
    method: 'put',
    data
  })
}

/**
 * 删除宠物（管理员）
 * @param {number} id - 宠物ID
 * @returns {Promise}
 */
export function deletePet(id) {
  return request({
    url: `/pet/${id}`,
    method: 'delete'
  })
}

/**
 * 批量删除宠物（管理员）
 * @param {Array<number>} ids - 宠物ID列表
 * @returns {Promise}
 */
export function batchDeletePet(ids) {
  return request({
    url: '/pet/batch',
    method: 'delete',
    data: ids
  })
}

/**
 * 更新宠物状态（管理员）
 * @param {number} id - 宠物ID
 * @param {number} status - 状态
 * @returns {Promise}
 */
export function updatePetStatus(id, status) {
  return request({
    url: `/pet/status/${id}`,
    method: 'put',
    params: { status }
  })
}

// 添加宠物信息（用于管理后台）
export function addPet(data) {
  return request({
    url: '/pet/add',
    method: 'post',
    data
  })
}

// 更新宠物信息（用于管理后台，带ID）
export function updatePetById(id, data) {
  return request({
    url: `/pet/update/${id}`,
    method: 'put',
    data
  })
}

/**
 * 管理员查询宠物列表（支持高级动态查询）
 * @param {Object} params
 * @param {number} params.pageNum - 页码，默认1
 * @param {number} params.pageSize - 每页大小，默认10
 * @param {string} params.petName - 宠物名称（模糊查询）
 * @param {number} params.categoryId - 分类ID（1=狗，2=猫，3=兔子）
 * @param {string} params.breed - 品种（模糊查询）
 * @param {number} params.minAge - 最小年龄（月）
 * @param {number} params.maxAge - 最大年龄（月）
 * @param {number} params.gender - 性别（1=公，2=母）
 * @param {number} params.minPrice - 最低价格
 * @param {number} params.maxPrice - 最高价格
 * @param {number} params.petStatus - 宠物状态（1=待售，2=已售，3=已被领养，4=已预定）
 * @param {number} params.healthStatus - 健康状态（1=健康，2=一般，3=需要关注）
 * @param {number} params.vaccinationStatus - 疫苗状态（0=未接种，1=已接种）
 * @param {number} params.sterilizationStatus - 绝育状态（0=未绝育，1=已绝育）
 * @param {number} params.ownerId - 主人ID
 * @param {number} params.employeeId - 负责员工ID
 * @param {boolean} params.deleted - 是否已删除，默认false
 * @param {string} params.startDate - 创建开始日期
 * @param {string} params.endDate - 创建结束日期
 * @param {string} params.orderBy - 排序字段（price/age/createTime）
 * @param {string} params.order - 排序方向（asc/desc）
 * @returns {Promise}
 */
export function getAdminPetList(params) {
  return request({
    url: '/pet/admin/list',
    method: 'get',
    params
  })
}

export default {
  getPetList,
  getPetDetail,
  createPet,
  updatePet: updatePetById,
  deletePet,
  batchDeletePet,
  updatePetStatus,
  addPet,
  getAdminPetList
}
